package com.zzh.lib.core.lang;

import java.util.Collection;
import java.util.List;

/**
 * Created by ZZH on 3/24/21.
 *
 * @Date: 3/24/21
 * @Email: zzh_hz@126.com
 * @QQ: 1299234582
 * @Author: zzh
 * @Description: Object 操作工具类
 */
public class ObjectUtils {

    /**
     * 判断给的数据是不是都不是null.
     *
     * @param values 数组
     * @return true，所有数据都有值
     */
    public static boolean allNotNull(final Object... values) {
        if (values == null) {
            return false;
        }
        for (final Object val : values) {
            if (val == null) {
                return false;
            }
        }
        return true;
    }

    /**
     * 判断实例是不是为null
     *
     * @param values 实例
     * @return true 为null
     */
    public static boolean isNull(Object values) {
        return values == null;
    }

    /**
     * 判断实例是不是为null
     *
     * @param values 实例对象
     * @return true 不为null
     */
    public static boolean isNotNull(Object values) {
        return values != null;
    }


    /**
     * 判断集合为null或者为空
     *
     * @param data 集合
     * @param <T>  T
     * @return true 集合为空或者null
     */
    public static <T> boolean isNullOrEmpty(Collection<T> data) {
        return data == null || data.isEmpty();
    }

    /**
     * 判断集合不为null或者不为空
     *
     * @param data 集合
     * @param <T>  T
     * @return true 集合不为空并且不为null
     */
    public static <T> boolean isNotNullAndEmpty(Collection<T> data) {
        return data != null && !data.isEmpty();
    }
}
